#pragma once

#include <cstdint>
#include <memory>

#include "Robot.h"

namespace rock {
class Navigator {
public:
  uint32_t compute_area(Robot &robot);

public:
  Navigator();

  ~Navigator() noexcept;

  Navigator(Navigator &&) noexcept;

  Navigator &operator=(Navigator &&) noexcept;

public:
  Navigator(const Navigator &) = delete;

  Navigator &operator=(const Navigator &) = delete;

private:
  class Impl;
  std::unique_ptr<Impl> impl_;
}; // class Navigator
} // namespace rock
